1870C - Colorful Table - CodeForces Solution


binary search dp implementation sortings two pointers

Please click on ads to support us..

C++ Code:

#include<iostream>
using namespace std;
#define ll long long
#define pb push_back
#define R return
#include<map>
#define yes cout<<"YES\n";
#define no cout<<"NO\n";
#define noo cout<<"-1\n";
#define lop(i,a,n) for(ll i=a; i<n; i++)
const int N=2e5+7;
ll a[N],b[N],T=1;
map<ll,ll>mp;
void solve()
{
    mp.clear();
    ll n,k;
    cin>>n>>k;
    ll mx=0;
    for(int i=1;i<=n;i++)
    {
        ll x;
        cin>>x;
        mp[x]=1;
        b[x]=i;
        if(!a[x])a[x]=i;
        mx=max(mx,x);
    }
    for(int i=k-1;i>=1;i--)
    {
        if(!mp[i])
        {a[i]=a[i+1],b[i]=b[i+1];continue;}
        b[i]=max(b[i],b[i+1]);
        if(a[i+1])
            a[i]=min(a[i],a[i+1]);
    }
    for(int i=1;i<=k;i++)
    {
        if(mp[i])
        cout<<(b[i]-a[i]+1)*2<<' ';
        else cout<<0<<' ';
    }
    cout<<endl;
    for(int i=1;i<=k;i++)a[i]=b[i]=0;

}
int main()
{
    cin>>T;
    while(T--)
        solve();
    R 0;
}


Comments

Submit
0 Comments
More Questions

1607A - Linear Keyboard
EQUALCOIN Equal Coins
XOREQN Xor Equation
MAKEPAL Weird Palindrome Making
HILLSEQ Hill Sequence
MAXBRIDGE Maximise the bridges
WLDRPL Wildcard Replacement
1221. Split a String in Balanced Strings
1002. Find Common Characters
1602A - Two Subsequences
1555A - PizzaForces
1607B - Odd Grasshopper
1084A - The Fair Nut and Elevator
1440B - Sum of Medians
1032A - Kitchen Utensils
1501B - Napoleon Cake
1584B - Coloring Rectangles
1562B - Scenes From a Memory
1521A - Nastia and Nearly Good Numbers
208. Implement Trie
1605B - Reverse Sort
1607C - Minimum Extraction
1604B - XOR Specia-LIS-t
1606B - Update Files
1598B - Groups
1602B - Divine Array
1594B - Special Numbers
1614A - Divan and a Store
2085. Count Common Words With One Occurrence
2089. Find Target Indices After Sorting Array